package com.fjwt.gz.db.dto;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

/**
 * <p>
 * 会员信息基础表（18个地市进行关联）
 * </p>
 *
 * @author shiyonghao
 * @since 2025-04-09
 */
@Data
public class FansDTO {

    /**
     * 会员ID
     */
    private Long fansId;

    /**
     * 手机号码
     */
    private String phone;

    /**
     * 昵称
     */
    private String nickName;

    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date birthday;

    /**
     * 性别 0: 未知 1: 男 2: 女
     */
    private Integer sex;

    /**
     * 头像
     */
    private String headPic;

    /**
     * 支付公众号的open_id
     */
    private String payOpenId;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /**
     * 更新建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updatedAt;


    private Integer isAuth;
    /** 商户号 **/
    private String mchNo;
    /**真实姓名*/
    private String realName;

    private List<FansUserDTO> list;

    /**
     * 员工编号
     */
    private String employeeNo;

    /**
     * 是否已解除绑定 0否 1是，默认0
     */
    private Integer isDeleted;

    /**
     * 1:实名   2：绑定商户
     */
    private String flag;

    private List<String> agentNoList;

    /**
     *省编号
     */
    @TableField(exist = false)
    private String agentNo1;

    /**
     *市编号
     */
    @TableField(exist = false)
    private String agentNo2;

    /**
     *区县编号
     */
    @TableField(exist = false)
    private String agentNo3;

    /**
     *机构编号
     */
    @TableField(exist = false)
    private String agentNo4;

    /**
     *客户首次登录小程序开始时间
     */
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startEntryTime;

    /**
     *客户首次登录小程序结束时间
     */
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endEntryTime;

    /**
     *1:未认证 0:认证成功
     */
    @TableField(exist = false)
    private Long isAustState;

    /**
     *实名认证开始时间
     */
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startIsAustTime;

    /**
     *实名认证结束时间
     */
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endIsAustTime;

    @TableField(exist = false)
    private String openId;

    @TableField(exist = false)
    private String fansUserId;

    /**
     * 归属机构号
     */
    @TableField(exist = false)
    private String agentNo;

    /**
     * 归属机构号
     */
    @TableField(exist = false)
    private List<String> agentNos;

    /**
     * 实名手机号
     */
    @TableField(exist = false)
    private Integer authPhone;

    /**
     * 真实姓名
     */
    @TableField(exist = false)
    private String cstmName;

    /**
     * 实名唯一id（如果存在则是实名，不存在就是未实名）
     */
    @TableField(exist = false)
    private String cstmNo;

    /**
     * 实名认证时间
     */
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date firstIsAustTime;

    /**
     * 首次登录时间
     */
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date firstEntryTime;


    @TableField(exist = false)
    private String scoreFlag;

    /**
     * 福分变动开始时间
     */
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startScoreTime;

    /**
     * 福分变动结束时间
     */
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endScoreTime;

    @TableField(exist = false)
    private String appId;
}
